The field of computer graphics concerns the creation, storage, manipulation and display of pictures and models of objects by a digital processor. Interactive computer graphics is the subclass of computer graphics in which a user dynamically controls the picture's content, format, size or color on a display surface by means of an interaction device such as a keyboard, lever or joystick. See Fundamentals of Interactive Computer Graphics, by J. D. Foley and A. Van Dam, ISBN: 0-201-14468-9. The creation of synthetic images (i.e., images which exist as abstract collections of lines, points, curves, etc., in the computer's memory) is the usual domain of interactive computer graphics.
The two primary classes of interactive computer graphics systems are random-scan and raster-scan systems. Images displayed by a random-scan system are encoded as commands to draw each output primitive (i.e., point, line =2 - 189,364 or polygon) by plotting individual points or drawing connecting lines between specified starting and ending coordinates of line segments. Polygons are simply treated as a closed series of line segments. Encoding for a raster-scan system is much simpler: output primitives are broken into their constituent points for display. The major difference between a simple point-plotting random-scan system and a raster-scan system is in the organization of the stored data used to drive the display. As explained below, the data is stored in a "frame buffer."
In the random-scan system the component points of each output primitive are stored sequentially in memory and plotted in the same order, one point at a time. This is because the beam may be moved randomly on the screen. In the raster-scan system the frame buffer memory is arranged as a 2-dimensional array of data. The value stored at a particular row and column encodes an intensity and/or color value of a corresponding display element on the screen. The location of each display element is typically specified by a unique (X,Y) coordinate. Since each memory location defines a single point-sized element of an image, both the display screen location and its corresponding memory location are often called a "pixel," short for "picture element." Hereinafter, to avoid confusion, the term "display pixel" will be used to indicate picture elements of a display device, and "storage pixel" to indicate memory locations corresponding to the display pixels.
FIG. 1 is a simplified block diagram of a raster-scan graphics system 10 that includes an image creation system 12, an image storage system 14 (which includes a frame buffer), an image display system 16, a raster-scan display 18 and an interaction device 20. The image creation system 12 converts output primitives into pixel data and writes the pixel data to the frame buffer of the image storage system 14. The overall speed at which the stored image data can be modified is dependent upon how fast the image creation system carries out the "scan - 3 =189,364 conversion" process, i.e., the process of converting a mathematical representation of an image to the array of pixel data in the frame buffer. Usually, the faster the scan conversion process is carried out, the faster the overall system response time to user commands. Moreover, it is known that response time is critical to user satisfaction and, more importantly, to user productivity.
A pixel cache comprising one or more cache memory units may be used as an intermediate storage device for pixel data that is to be written to the frame buffer. The pixel cache may also contain circuitry for performing certain operations on the pixel data before the data is written to the frame buffer. The primary goal of the present invention is to provide an interface between a pixel cache and frame buffer that is capable of aligning "tiles" (i.e., data sets representing groups of display pixels or groups of memory locations for storing the data sets) in the cache memory units with the frame buffer's storage pixels. Such aligning is particularly necessary to ensure that an image's appearance does not change when the image creation system is operated in a window-relative mode and the window in which the image is located is horizontally and vertically moved around the screen. In addition, there are advantages in having the capability of rearranging groups of bits (e.g., nibbles) within each byte of pixel data. For example, if only four bits per color are used to represent a pixel value, two different values could be represented per eight-bit byte. Changing the image displayed would be easier and faster if it were possible to easily interchange nibbles within a pixel (which may be thought of as rotating the data in a third dimension).
A further goal of the present invention is to provide a three-dimensional pixel cache that includes means for rotating its data in three dimensions to properly align the cache memory units with the frame buffer. A still further goal of the present invention is to provide a computer graphics system which incorporates a three-dimensional pixel cache that includes means for rotating its data in three dimensions.